home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / demos / VisualAge for Java 2.0 Entry / setup / data1.cab / ide-e / IDE / cache / E3OSII (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-16  |  4.0 KB  |  119 lines

  1. package com.sun.java.swing.plaf.basic;
  2.  
  3. import com.sun.java.swing.AbstractButton;
  4. import com.sun.java.swing.ButtonModel;
  5. import com.sun.java.swing.JButton;
  6. import com.sun.java.swing.JComponent;
  7. import com.sun.java.swing.JRootPane;
  8. import com.sun.java.swing.KeyStroke;
  9. import com.sun.java.swing.SwingUtilities;
  10. import com.sun.java.swing.event.ChangeEvent;
  11. import com.sun.java.swing.event.ChangeListener;
  12. import java.awt.Component;
  13. import java.awt.Rectangle;
  14. import java.awt.event.FocusEvent;
  15. import java.awt.event.FocusListener;
  16. import java.awt.event.MouseEvent;
  17. import java.awt.event.MouseListener;
  18. import java.awt.event.MouseMotionListener;
  19. import java.io.Serializable;
  20. import java.util.EventObject;
  21.  
  22. public class BasicButtonListener implements MouseListener, MouseMotionListener, FocusListener, ChangeListener, Serializable {
  23.    private Rectangle tmpRect = new Rectangle();
  24.  
  25.    public BasicButtonListener(AbstractButton b) {
  26.    }
  27.  
  28.    public void focusGained(FocusEvent e) {
  29.       AbstractButton b = (AbstractButton)((EventObject)e).getSource();
  30.       if (b instanceof JButton) {
  31.          JRootPane root = ((JComponent)b).getRootPane();
  32.          if (root != null) {
  33.             root.setDefaultButton((JButton)b);
  34.          }
  35.       }
  36.  
  37.       ((Component)b).repaint();
  38.    }
  39.  
  40.    public void focusLost(FocusEvent e) {
  41.       AbstractButton b = (AbstractButton)((EventObject)e).getSource();
  42.       ((Component)b).repaint();
  43.    }
  44.  
  45.    public void mouseClicked(MouseEvent e) {
  46.    }
  47.  
  48.    public void mouseDragged(MouseEvent e) {
  49.       AbstractButton b = (AbstractButton)((EventObject)e).getSource();
  50.       ButtonModel model = b.getModel();
  51.       if (model.isPressed()) {
  52.          this.tmpRect.width = ((JComponent)b).getWidth();
  53.          this.tmpRect.height = ((JComponent)b).getHeight();
  54.          if (this.tmpRect.contains(e.getPoint())) {
  55.             model.setArmed(true);
  56.          } else {
  57.             model.setArmed(false);
  58.          }
  59.       }
  60.  
  61.    }
  62.  
  63.    public void mouseEntered(MouseEvent e) {
  64.       AbstractButton b = (AbstractButton)((EventObject)e).getSource();
  65.       if (b.isRolloverEnabled()) {
  66.          b.getModel().setRollover(true);
  67.       }
  68.  
  69.    }
  70.  
  71.    public void mouseExited(MouseEvent e) {
  72.       AbstractButton b = (AbstractButton)((EventObject)e).getSource();
  73.       if (b.isRolloverEnabled()) {
  74.          b.getModel().setRollover(false);
  75.       }
  76.  
  77.    }
  78.  
  79.    public void mouseMoved(MouseEvent e) {
  80.    }
  81.  
  82.    public void mousePressed(MouseEvent e) {
  83.       if (SwingUtilities.isLeftMouseButton(e)) {
  84.          AbstractButton b = (AbstractButton)((EventObject)e).getSource();
  85.          ButtonModel model = b.getModel();
  86.          model.setArmed(true);
  87.          model.setPressed(true);
  88.          if (!((JComponent)b).hasFocus()) {
  89.             ((JComponent)b).requestFocus();
  90.          }
  91.       }
  92.  
  93.    }
  94.  
  95.    public void mouseReleased(MouseEvent e) {
  96.       AbstractButton b = (AbstractButton)((EventObject)e).getSource();
  97.       ButtonModel model = b.getModel();
  98.       model.setPressed(false);
  99.    }
  100.  
  101.    public void setupKeyboard(AbstractButton b) {
  102.       ButtonModel bm = b.getModel();
  103.       ((JComponent)b).resetKeyboardActions();
  104.       ((JComponent)b).registerKeyboardAction(new PressedAction(b), KeyStroke.getKeyStroke(32, 0, false), 0);
  105.       ((JComponent)b).registerKeyboardAction(new ReleasedAction(b), KeyStroke.getKeyStroke(32, 0, true), 0);
  106.       if (bm.getMnemonic() != 0) {
  107.          ((JComponent)b).registerKeyboardAction(new PressedAction(b), KeyStroke.getKeyStroke(bm.getMnemonic(), 8, false), 2);
  108.          ((JComponent)b).registerKeyboardAction(new ReleasedAction(b), KeyStroke.getKeyStroke(bm.getMnemonic(), 8, true), 2);
  109.          ((JComponent)b).registerKeyboardAction(new ReleasedAction(b), KeyStroke.getKeyStroke(bm.getMnemonic(), 0, true), 2);
  110.       }
  111.  
  112.    }
  113.  
  114.    public void stateChanged(ChangeEvent e) {
  115.       AbstractButton b = (AbstractButton)((EventObject)e).getSource();
  116.       ((Component)b).repaint();
  117.    }
  118. }
  119.